/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gob.cgr.sgrh.ejb.entidad;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author MICROSOF
 */
@Entity
@Table(name = "puesto_cabecera")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "PuestoCabecera.findAll", query = "SELECT p FROM PuestoCabecera p"),
    @NamedQuery(name = "PuestoCabecera.findByIdPuestoCab", query = "SELECT p FROM PuestoCabecera p WHERE p.idPuestoCab = :idPuestoCab"),
    @NamedQuery(name = "PuestoCabecera.findByNumHojaInf", query = "SELECT p FROM PuestoCabecera p WHERE p.numHojaInf = :numHojaInf"),
    @NamedQuery(name = "PuestoCabecera.findByAprobacion", query = "SELECT p FROM PuestoCabecera p WHERE p.aprobacion = :aprobacion"),
    @NamedQuery(name = "PuestoCabecera.findByPublicacion", query = "SELECT p FROM PuestoCabecera p WHERE p.publicacion = :publicacion"),
    @NamedQuery(name = "PuestoCabecera.findByEstado", query = "SELECT p FROM PuestoCabecera p WHERE p.estado = :estado"),
    @NamedQuery(name = "PuestoCabecera.findByVigente", query = "SELECT p FROM PuestoCabecera p WHERE p.vigente = :vigente")})
public class PuestoCabecera implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "ID_PUESTO_CAB")
    private Integer idPuestoCab;
    @Size(max = 5)
    @Column(name = "NUM_HOJA_INF")
    private String numHojaInf;
    @Column(name = "APROBACION")
    @Temporal(TemporalType.DATE)
    private Date aprobacion;
    @Column(name = "PUBLICACION")
    @Temporal(TemporalType.DATE)
    private Date publicacion;
    @Size(max = 45)
    @Column(name = "ESTADO")
    private String estado;
    @Size(max = 1)
    @Column(name = "VIGENTE")
    private String vigente;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "puestoCab")
    private List<Puesto> puestoList;

    public PuestoCabecera() {
    }

    public PuestoCabecera(Integer idPuestoCab) {
        this.idPuestoCab = idPuestoCab;
    }

    public Integer getIdPuestoCab() {
        return idPuestoCab;
    }

    public void setIdPuestoCab(Integer idPuestoCab) {
        this.idPuestoCab = idPuestoCab;
    }

    public String getNumHojaInf() {
        return numHojaInf;
    }

    public void setNumHojaInf(String numHojaInf) {
        this.numHojaInf = numHojaInf;
    }

    public Date getAprobacion() {
        return aprobacion;
    }

    public void setAprobacion(Date aprobacion) {
        this.aprobacion = aprobacion;
    }

    public Date getPublicacion() {
        return publicacion;
    }

    public void setPublicacion(Date publicacion) {
        this.publicacion = publicacion;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getVigente() {
        return vigente;
    }

    public void setVigente(String vigente) {
        this.vigente = vigente;
    }

    @XmlTransient
    public List<Puesto> getPuestoList() {
        return puestoList;
    }

    public void setPuestoList(List<Puesto> puestoList) {
        this.puestoList = puestoList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idPuestoCab != null ? idPuestoCab.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof PuestoCabecera)) {
            return false;
        }
        PuestoCabecera other = (PuestoCabecera) object;
        if ((this.idPuestoCab == null && other.idPuestoCab != null) || (this.idPuestoCab != null && !this.idPuestoCab.equals(other.idPuestoCab))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "gob.cgr.sgrh.ejb.entidad.PuestoCabecera[ idPuestoCab=" + idPuestoCab + " ]";
    }
    
}
